UNIX MAGAZINE 2001年10月号

キーフレーズ

UNIX MAGAZINE ファイル Linux http:// Windows コマンド Emacs 文字列 2001 IPv6 www インターフェイス 場合 vim アドレス 表示 txt Web vmware 入力 設定 実行 access ネットワーク any 指定 emacs LCD SCSI () file バッフア list CPU システム VMware Summit lftp サーバー 対応 利用 プログラム アクセス port create 機能 com source for 000 ページ hoge リスト 本体価格 出力 name IPv4 cat カーソル ファイル名 buffer ディレクトリ co.jp proc request 標準 できる ソースコード .com データ return モード JSP getaddrinfo start 可能 Java アプリケーション MHz URL 必要 int FreeBSD 携帯電話 文字 testl 関数 html replace 情報 変更 FTP org Ethernet ports ホスト名 カーネル destination

目次

連載 /JavaServer Pages—O 図 10 cookie 情報を取得するコード (cookiel ・ jsp) く %@ page contentType="text/htm1 ; charset=EUC-JP" % > く ! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.0 Transitiona1//EN" > く html > く he ad> く meta http—equiv="Content—Type" content="text/html ; charset=EUC—JP"> く tit1e>C00kie1 く /title> く /head> く body> く % Cookie ロ for (int く % く /body> く /html > c = request . getC00kies() ; 0 ; i く c . length; i + + ) { 1 く % = c [i] . getVa1ue ( ) %> く br> 図 11 cookie 情報を表示した JSP べージ (cookiel ・ jsp) 方イル ( E ) 編集 ( 印表示 (Y) お気に入り (A) ツールヘルプ但 ) ) し : Ok 1 ー Mi 030 録 n EXO にイ 習回 第・ゆ ~ 朝奇 0 検常コお気に入り朝届歴当朝影 , ・医 0 Ⅱルりに [ 1 、 ] dSESSlO ト JID h10V1 v3ng1 [ 0 ] myOookie vanilla avo 「 = アドレス 0 h ノ / t 。に計 80 ん n 曲記こ。。 k に l.j 印 UNIX MAGAZINE 2001.10 response オプジェクトを使って成疋できます。詳しい説 に、 Web サーバーからプラウサへ送る cookie データは トを使ってアクセスできました ーから想像できるよう サーバーに送り込まれる cookie は、 request オプジェク についてもお話ししておきましよう。プラウサから Web cookie の取得をみてもらったついでに、 cookie の成疋 は cookie データを 2 っ受け取っています。 図 11 は、 cookiel. jsp を表示した画面です。この例で を使ってこれらの情報を取り出しています。 ・ getValue ( ) ・ getName() クラスのメソッドの、 報が保存されており、図 10 の JSP コードでは Cookie プジェクトを返します。 cookie には名前と値のペアの清 明は省きますが、図 12 は、 名則が yourCookie イ直カゞ、、 chocolate flavor という cookie をプラウザへ送る JSP コードです。 URL の取得 バーです。 " の 1 行を表示する JSP コード port ・ jsp HTTP の標準のポート番号でなければ、、テスト用のサー 図 13 は、ポート番号を調べて 80 番のポート、すなわち す。 などを取得するためのメソッドがひととおり揃っていま 表す文字列 ・サーバー名やポート番号を除いた Web ページの位置を ・ URL に設定されているポート番号 ・ URL に設定されているサーバー名 ・ JSP ページがどのような URL でアクセスされたか す。 request オプジェクトには、 やポート番号、データの位置などを組み合わせた文字列で 指定します。この URL は、アクセスするサーバーの名前 プラウザは Web にアクセスするときに URL を使って 125

0 JavaServer Pages— 図 7 パラメータ名か重複している場合の表示 連載 つイヨ旧 ! 材 2 ーに一 80 1 日 n を ! E い「 方イル ) 編集 ( 印表示お気に入り住 ) ツーヘルプ 言回 第 , ・ , 0 囹 0 齢山お気に入り当雇歴当朝 , 」リンク 4 " をアドい : リ可篇 ; 7 高 ; 奢高 : 言に : : : 言 : : 言 : : : な : : 勺移助 べーンが表〒は m3no 市唇 ok oolor: red 選択された色をすべて表示する 124 く % = request . getQueryString() % > タをそのまま表示します ( 図 9 ) 。 次の JSP コードは、エンコードされた状態のパラメー QueryString() メソッドカリ用できます。 があってこの文字列そのものを受け取りたい場合は、 get- ードした ) 文字列の形式になっています。何か特別な事情 名前と値を一定のルールに従ってつなぎ合わせた ( 工ンコ ーバー , ヾラメータを渡すときは、すべてのパラメータの ところで、ご存しのようにプラウザから JSP (Web) サ べてパラメータの名前と値のペアに対する操作でした。 これまでみてきた getParameterXXX メソッドは、す getQueryString メソッド を追ってみてください。 が入れ子になっていて混乱しそうですが、注意架くコード スクリプトレットの while 文や for 文と、 JSP の式タグ パラメータの値を表示するようにした JSP コードです。 す。図 8 は、 getParameterValues() を使って重複した して受け取り、名前に対応する値を文字列の酉改」で返しま getParameterValues() はパラメータの名前を引数と va. lang. String name) public java. lang. String ロ getParameterVa1ues(ja 以下にこのメソッドの呼出し形式を示します。 るときは、 getParameterValues() メソッドを使し、ます。 このように同一の名前に対して複数の値か設定されてい せん。 択した項目が 1 つの名前につき 1 っすっしか表示されま はどの parameter2. jsp を呼び出すと、図 7 のように選 この場合、すべてのチェックポックスを選択してさき と、、白 " のチェックポックス名はどちらも ssrnono" です。 ラメータ ) の名前がいすれも、、 col 。 r " です。また、、、黒 " 図 8 getParameterValues() ですべてのパラメータ値を 表示するコード く % Enumeration e = request . getParameterNames ( ) ; while (e . hasMoreE1ements ( ) ) { String name = (String) e. nextEIement ( ) ; String values ロ request . getParameterVaI ues(name) ; く % = name % > : for (int i = 0 ; i く values . length; " " 十 values [i] % > く % く % = く % く br> く % 図 9 getQueryString() の出力 方イル編集 ( 印表示 ( 辺お気に入りツール (I) ヘルプ凹 ユ第 3 融 0 ー M ロ 030 日ト t ” r ー 回ロ 」第・ー 0 囹 0 当お入り」履歴当朝Ⅳ、つ目リンりに」 oolorcred&oolor=green&color=blue&mono=blaok&mono=white 工ンコードされたパラメータの表示 ー朝スこジ裏〒されした cookie の取得 UNIX MAGAZINE 2001.10 getCookies() は、戻り値として C00kie クラスのオ ページ (cookiel. jsp ファイル ) です。 た cookie ↑欝長を配列の添字とともにすべて表示する JSP Cookies() メソッドを使って、クライアントから受け取っ とが可能です。図 10 は、 request オプジェクトの get- JSP コードでも cookie の値を設定したり取り出すこ のではないでしようか。 などで、ユーサーの識別に利用されていることはご存しな 個人用にカスタマイズしたページを表示する Web サイト かもしれません。しかし、オンライン・ショッピングや、 ろでやりとりされるので、ふだんはあまり気にしていない ジの内容そのものとは違い、ユーサーの目に触れないとこ cookie はフォームなどで渡すパラメータや、 Web/*— りされる小さなデータです。 cookie はプラウサと Web サーバーのあいだでやりと

します。図 2 は、このフォームをプラウサて表示させた 結果です。このフォームで尺された項目の名前と値を表 示する JSP ページを作ってみましよう。 一番単純なガ去は、図 3 のように getParameter() メ ソッドを使って 1 っすっパラメータの値が設定されてい るかどうかを調べることです。しかし、これでは選択肢 の数か増えるにしたがってどんどんコードが長くなります し、同じような処理を何度も繰り返すので効率も悪くなり ます。もちろん、パラメータの名前を配列にオ褓内しておけ ば、もっとすっきりしたコードにできますが、選択肢の数 だけ if 文を実行する点は変わらないので、やはり効率の問 題か残ります。 getParameterNames メソッド 効率の問題は、設定されているパラメータだけが手に入 ・風間一洋著 れは角夬できます。 getParameterNames() メソッドは、 ・ A5 判、 312 ページ 成疋されているパラメータの名前のリストを取得するメソ ・ ISBN 4-7561-3481-5 ッドです。以下は API のイ土様書から抜粋したこのメソッ ・本体 3 , 000 円十税 ドの呼出し形式です。 Java による日本語処理、さらには国際化 public java. util. Enumeration getParameterNames ( ) プログラミングに必須の知識を数多くの サンプル・プログラムを示しながら平易に getParameterNames() メソッドは引数なしで呼び出 解説する。真の意味での "Write Once, され、名則のリストを Enumeration クラスのオプジェク Run Anywhere" を目指すプログラマー トの形式で返します。 Enumeration クラスの要素にアク に最適の 1 冊。 セスするには、一般に次のコードを使います。 目次から Enumeration e 1 章 Java はどんな言語か while (e . hasMoreE1ements ( ) ) { / / まだ要素があれば 2 章 国際化と地域化 Object 0 = e. nextE1ement ( ) ; / / 次の要素を取り出す 3 章 Unicode 4 章 ロケー丿レ 5 章 工ンコーティング 図 4 は、 getParameterNames() メソッドを使って書 タイムゾーン 6 章 き換えた JSP ページ parameter2. jsp" です。また、図 7 章 リソース / ヾンドル 8 章 フォーマット出力と解析 5 は parameter2. jsp ページを表示した結果です。 9 章 文字列の比較 Enumeration クラスは標準では読み込まれないため、 10 章 テキストの境界解析 インブットメソッド 1 1 章 図 4 の 2 行目の、 12 章 文字の表示 く %@ page import="Java. util. * " % > Unicode プロック / ロケール一覧 / 付録 工ンコーティング名一覧 / タイムゾーン D 一覧 / で java. util. * ノ、ツケージを読み込むように扣正していま ユーロ通貨記号への対応 す。 株式会社アスキー getParameterVaIues メソッド 次は、図 6 に示したフォームについてみてみましよう。 今度は、、赤 " 、、緑 " 、、青 " の 3 つのチェックポックス ( パ 連載 /JavaServer Pages— SC 翡 好評発売中 ! Java フログラミング・ノート 国際化と 日本語処理 CAFE BABE 国際化と日本語処理 ・フ 〒 1 51 ー 8024 東京都渋谷区代々木 4 ー 33 ー 1 0 出版営業部 電話 ( 03 ) 535 ] ー 81 94 123 UNIX MAGAZINE 2001.10